import axios from 'axios';
import _ from 'lodash';
import qs from 'qs';
// import cookie from 'cookie_js';

const server = axios.create();

server.defaults.baseURL = '/api';
console.log(server.defaults);
console.log(111);
// tslint

/**
 *  arrayformat选项输出 指定数组的格式
 *  qs.stringify({ id: ['b', 'c'] }, { arrayFormat: 'indices' })   'id[0]=b&id[1]=c'
 *  qs.stringify({ id: ['b', 'c'] }, { arrayFormat: 'brackets' })  'id[]=b&id[]=c'
 *  qs.stringify({ id: ['b', 'c'] }, { arrayFormat: 'repeat' })  'id=b&id=c'
 */
server.defaults.paramsSerializer = params => {
  return qs.stringify(params, { arrayFormat: 'repeat' });
};

server.interceptors.request.use(
  (config) => {
    // 本地存贮或者cookie等
    // const token: string | null = localStorage.getItem('crm_m_token');
    const configWithToken = config;
    // configWithToken.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

    // if (token) {
    //   // 判断是否存在token，如果存在的话，则每个http header都加上token
    // configWithToken.headers.Authorization = token;
    // }

   //  ENV === 'local' && (configWithToken.headers.Authorization = TEST_TOKEN);
    return configWithToken;
  },
  (err) => {
    console.error('request.err: ', err);
    return Promise.reject(err);
  },
);
server.interceptors.response.use(
  (res) => {
    // console.log('res axios:', res);
    return Promise.resolve(res.data);
  },
  (err) => {
    console.error('response.err: ', err.response);
    // if (_.get(err, 'response.data')) {
    //   if (err.response.data.errcode === 401) {
    //     localStorage.removeItem('crm_m_token');
    //     location.reload();
    //   } else if (
    //     err.response.data.errcode === 500 &&
    //     err.response.data.errmessage === 'token错误'
    //   ) {
    //     localStorage.removeItem('crm_m_token');
    //     location.reload();
    //   }
    // }
    return Promise.reject(err.response && err.response.data);
  },
);
export { server as default };
